package com.zbo.mapper;

import com.zbo.pojo.Sc;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface ScMapper {
    /**
     * 分页查询学生课表
     * @param studentId 学生ID
     * @return 课表列表
     */
    List<Sc> selectAllByStudentId(@Param("studentId") Integer studentId);

    /**
     * 插入课程安排
     */
    int insert(Sc sc);

    /**
     * 根据ID删除课程安排
     */
    int deleteById(Integer id);


    /**
     * 更新课程安排
     */
    int update(Sc sc);

    /**
     * 按学生ID + 当前周数 查询有效课程
     * 分页功能应：
     * 前端传 week 参数
     * Servlet 接收并传递
     * MyBatis 通过 SQL 直接过滤 week_type
     * 只返回当前周需要的课程记录
     */
    List<Sc> selectByStudentIdAndWeek(
            @Param("studentId") Integer studentId,
            @Param("currentWeek") Integer currentWeek
    );

    List<Sc> selectByStudentIdAndTime(
            @Param("studentId") Integer studentId,
            @Param("dayOfWeek") Integer dayOfWeek,
            @Param("startTime") String startTime
    );

}
